#include <iostream>

#include "math/matrix.h"
#include "math/vector.h"
#include <math/matrix_svd.h>

int main(int argc, char *argv[])
{
    math::Matrix<double,4,5> A;
    for(int i=0;i<A.rows;i++){
        for(int j=0;j<A.cols;j++){
            A(i,j)=i+j;
            std::cout<<A(i,j)<<" ";
            }
        std::cout<<std::endl;
    }

    std::cout<<A.col(4)<<std::endl;

    math::Vector<double,8> B;
    for(int i=0;i<B.dim;i++){
        B(i)=i;
    }
    std::cout<<B<<std::endl;
    std::cout<<"向量中某一元素:"<<B(3)<<std::endl;

    //奇异值分解
    math::Matrix<double,5,5> S,V;
    math::Matrix<double,4,5> U;
    math::matrix_svd<double,4,5> (A,&U,&S,&V);
    std::cout<<U<<std::endl;
    std::cout<<S<<std::endl;
    std::cout<<V<<std::endl;
    return 0;
}